package ar.uba.fi.tonyvaliente.utils;

import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;
import java.util.ResourceBundle;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * Singleton que permite acceso a los recursos globales de la aplicacion
 * 
 * @author Santiago
 * 
 */
public class RecursosAplicacion {

	public static final String PROPERTIES_PATH = "config.xml";

	/**
	 * Log
	 */
	private Log log = LogFactory.getFactory().getInstance(this.getClass());

	/**
	 * La unica instancia de este Singleton
	 */
	private static RecursosAplicacion instance = new RecursosAplicacion();

	/**
	 * Forzamos el Singleton ocultando el constructor
	 */
	private RecursosAplicacion() {
		try {
			this.loadProperties();
		} catch (Exception error) {
			log.error("Error al obtener las properties del sistema.", error);
		}
	}

	public static RecursosAplicacion instance() {
		return instance;
	}

	/**
	 * Properties de la aplicacion
	 */
	private ResourceBundle properties = null;

	/**
	 * Carga las properties de configuraci�n.
	 * 
	 */
	protected void loadProperties() {

		try {

			log.debug("Cargando properties de la aplicacion");

			properties = ResourceBundle.getBundle("configuracion");

		} catch (Exception error) {

			log.error(
					"Se provoc� un error leyendo properties de la aplicacion",
					error);
		}
	}

	public ResourceBundle getProperties() {
		return this.properties;
	}

	public String getProperty(String key) {
		return this.getProperties().getString(key);
	}

	public int getIntProperty(String key) {

		return Integer.parseInt(this.getProperty(key));
	}
}
